home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 1 / PC Actual CD 01.iso / f1 / todo3d.arj / TODO3D.DOC < prev    next >
Encoding:
Text File  |  1994-08-23  |  16.0 KB  |  265 lines

  1.   *  
  2.   ** 
  3.   *** 
  4.   ****
  5.   *****
  6.   TODO3D 
  7.   ******* 
  8.   ***************************************************************************
  9.   (1994) DEMETRIO FERNANDEZ ALVAREZ                                          
  10.   ***************************************************************************
  11.                                                                              
  12.            ESTEREOGRAMAS Y TECNICAS DE VISIONADO                        
  13.                                                                              
  14.      Cuando un habla de ver imagenes en 3D se le vienen a la mente unas gafas
  15.   de un color rojo y verde para cada ojo y una foto hecha borrosamente en ro-
  16.   jo y verde y que al mirarla con estas gafas se ve asombrosamente en 3d y   
  17.   sin estar borrosa. Bueno no es un secreto que cada uno tenemos dos ojos y  
  18.   que cada uno percibe la imagen que estamos mirando desde un punto de vista 
  19.   diferente con unos centimetros de separacion una imagen de la otra tantos  
  20.   centimetros como hay de un ojo a otro, el cerebro funde esas dos imagenes y
  21.   el resultado es una imagen en 3 dimensiones, resumiendo para conseguir ver 
  22.   una imagen en 3 dimensiones deberiamos conseguir que cada ojo vea una ima- 
  23.   gen diferente y que ademas las dos imagenes sean la misma pero tomadas des-
  24.   de dos angulos diferentes el cerebro se encargara del resto. Si volvemos a 
  25.   las famosas gafas 3D estas se basan en que si tu ves atraves del color rojo
  26.   no veras en la imagen todo aquelo que este en rojo, e igual para el verde  
  27.   si tomamos dos fotos una con un filtro rojo desde un angulo y otra con un  
  28.   filtro verde desde otro angulo y hacemos una fusion de las dos en una foto 
  29.   obtendremos una especie de foto en verde y rojo desemfocada, pero si mira- 
  30.   mos la foto a traves de un plastico transparente de color rojo notaremos   
  31.   que solo notamos la foto hecha en verde y que no vemos todo lo que en la fo-
  32.   to esta en rojo e igual para el color verde , si ponemos un trozo de cada   
  33.   color para cada ojo el resultado es que en el ojo que esta el plastico rojo 
  34.   vemos la imagen en verde y en el otro que tenemos el plastico verde veremos 
  35.   la imagen en rojo y ya tenemos lo que perseguiamos un imagen diferente en   
  36.   cado ojo y cada una de ellas desde un angulo diferente casi como si fueran  
  37.   los dos ojos, entonces el cerebro hara que veamos una imagen en 3 dimensio- 
  38.   nes. Este metodo es bastante bueno pero tiene un problema  la imagen que se 
  39.   ve en 3 dimensiones es monocroma no podemos hacer que la imagen en 3D tenga 
  40.   unos colores determinados. Bueno para conseguir que la imagen en 3 dimensio-
  41.   nes tenga tambien colores deberemos olvidar este metodo para eso se va a lo 
  42.   facil una tele para cada ojo y ya esta, es lo que conocemos como gafas de   
  43.   realidad virtual nos ponen en cada ojo una imagen variada en un angulo y el 
  44.   cerebro hace el resto ,hay otros tipos de metodos como utilizar gafas pola- 
  45.   rizadas etc...                                                              
  46.                                                                               
  47.     ¿Pero como conseguir una imagen 3D sin ningun tipo de aparato? Bueno para 
  48.   explicar esto vais a tener que hacer un pequeño esperimento que consiste en 
  49.   que os acerqueis a la ventana de vuestra casa y mirar algo que este en la   
  50.   calle lo suficientemente lejos (yo veo unos contenedores de basura, es mejor
  51.   que lo que veais este fijo), bueno ya lo estais viendo pues ahora fijaros en
  52.   el cristal que teneis en frente (el mio tiene una manchita y me fijo en ella
  53.   si no teneis mancha fabricarla), bueno una vez que tenemos la vista en el   
  54.   cristal sin quitarla del cristal nos daremos cuenta de que ahora lo que ha- 
  55.   biamos visto antes a lo lejos ya no es un contenedor sino dos y no estamos  
  56.   borrachos, si lo hacemos al reves la mancha del cristal es doble. Hecho de  
  57.   otra manera en un papel dibuja un punto mira al punto y pon un dedo a media 
  58.   distancia entre el papel y el punto, ahora fijate en el dedo y veras que    
  59.   sin estar borracho el punto es doble vemos dos puntos, si nos fijamos en el 
  60.   punto es el dedo el que es doble. Bueno siguiente esperimento ahora dibuja  
  61.   mos un segundo punto en el papel y haciendo lo mismo con el dedo trataremos 
  62.   de ver exactamente 3 puntos, no es muy complicado intentarlo poniendo el de-
  63.   do a diversas distancias. Confio en que lo hayais conseguido, pues bien si  
  64.   en vez de dos puntos fueran dos imagenes una diferente de la otra pero va-  
  65.   riando en angulo de vista conseguiremos que la imagen central este en 3 di  
  66.   mensiones, es lo que se conoce como parejas estereoscopicas y existen casi  
  67.   desde que se ha inventado la fotografia ya en mil ochocientos cincuenta y   
  68.   algo se hacian parejas estereoscopicas con camaras de dos objetivos, hasta  
  69.   unos de nuestros mas famosos pintores Salvador Dalí ha hecho parejas este-  
  70.   reoscopicas con sus cuadros lo cual exige un gran conocimento de geometria  
  71.   si disponeis de algun raytrace podeis hacer dos render de una misma imagen  
  72.   desde dos puntos de vista diferentes con esas dos imagenes podeis construir 
  73.   vuestra propia pareja estereoscopica (Probarlo ya vereis como es verdadera- 
  74.   mente espectacular el efecto que se produce).                               
  75.                                                                               
  76.      Christopher W. Tyler cambio los estereogramas de dos imagenes por los es 
  77.   tereogramas de una sola imagen que tan de moda estan ahora y que estan con- 
  78.   siguiendo que libros en los que no hay nada que leer sean autenticos bestse-
  79.   llers. Los estereogramas de una sola imagen de Tyler han sido y son una au- 
  80.   tentica revolucion. ¿En que se basan? pues vienen a ser lo mismo que los es-
  81.   tereogramas de dos imagenes, la tecnica de visionado es la misma. El este-  
  82.   reograma de una sola imagen no es en verdad una sola imagen sino siete u    
  83.   ocho (es un numero simbolico simpre mas de una imagen) imagenes iguales     
  84.   puestas unas juntas con las otras hasta formar una sola imagen. Estas image-
  85.   nes que estan juntas las unas con las otras no son exactamente iguales se   
  86.   diferencian en unos pocos de rasgos precisamente esto si que va a a ser di- 
  87.   ficil de explicar, pero quedaros con la idea de que los estereogramas de    
  88.   una sola imagen son la repeticion de un patron horizontalmente y que el an- 
  89.   cho de este patron mientras se repite se varia para conseguir el efecto 3D  
  90.   a mayor o menor ancho del patron de repeticion este trozo se vera luego a   
  91.   mayor o menor profundidad, porque es así creo que ni el mismo Tyler lo sa-  
  92.   bria explicar pero si alguien lo sabe que vengan y me lo exlique, que cons- 
  93.   te que tengo mi propia teoria pero no me atrevo a exponerla.                
  94.                                                                               
  95.      Para que lo entendais mejor os voy a esplicar como construir vuestro pri-
  96.   mer estereograma de una sola imagen. Coger un program de dibujo semejante al
  97.   deluxepaint o al paintbrush da igual dos o windows. Coger el spray y pintar 
  98.   una zona con el spray recortar un trozo cuadrado del trozo pintado con el   
  99.   spray (recordad que la zona tenga los suficientes puntos). Borrar la panta- 
  100.   lla poner el recorte en el centro del dibujo un trozo mas arriba tambien y  
  101.   ahora crearemos otro recorte pero cogiendo el primer tercio del recorte y   
  102.   el tercer tercio del recorte, es decir el nuevo recorte es dos tercios del  
  103.   anterior, si ponemos el recorte justo pegado justo delante y detras del re- 
  104.   corte anterior, procurando que quede borde con borde, ya tendremos nuestro  
  105.   primer estereograma en el cual veremos como un cuadrado se sale hacia afue- 
  106.   ra o hacia a dentro depende de la tecnica de visionado. Porque aunque no lo 
  107.   haya dicho hay dos tecnicas de visionado con los ojos cruzados y los ojos   
  108.   en paralelo. Los ojos cruzados corresponde a la ya explicada de poner el de-
  109.   do delante y fijarse en el dedo con lo cual estaras cruzando los ojos,po-   
  110.   niendo los ojos bizcos pones el punto focal entre la imagen y tus ojos justo
  111.   donde esta el dedo. Con los ojos en paralelo pones el punto focal detras de 
  112.   la pagina que estas viendo estas tratando de poner la vista mas alla de la  
  113.   hoja, ya lo habras oido varias veces pero se consigue poniedo la imagen pe- 
  114.   gada a los ojos e ir separandola de los ojos hasta que se forme la imagen   
  115.   en 3D. Las dos tecnicas estan contrapuestas lo que con una es hacia afuera  
  116.   con la otra es hacia adentro, la que mas se utiliza en los libros que encon-
  117.   traras es con los ojos en paralelo, yo personalmente prefiero con los ojos  
  118.   en cruzado, es una tecnica mucho mas facil de conseguir para mi y mucha gen-
  119.   te.                                                                         
  120.   
  121.   * 
  122.   ** 
  123.   *** 
  124.   **** 
  125.   *****  
  126.   TODO3D  
  127.   ******* 
  128.   *************************************************************************** 
  129.   (1994) DEMETRIO FERNANDEZ ALVAREZ                                           
  130.   *************************************************************************** 
  131.                                                                               
  132.   Mi programa todo3d crea estereogramas de una sola imagen apartir de un PCX  
  133.   de 640*480 de resolucion y con 16 colores cada uno de los cuales correspon- 
  134.   de a una escala profundidad, se puede especificar el patron a usar con otro 
  135.   PCX sino se hace se usaran puntos aleatorios, y graba otro PCX como salida, 
  136.   tambien se puede especificar el ancho inicial del patron a repetir lo cual  
  137.   puede no ser muy importante sino fuera porque el resultado final puede ser  
  138.   mas o menos bonito y facil de ver ya que habra que modificar mas o menos el 
  139.   punto focal para poder ver la imagen,y tambien la tecnica de visionado con  
  140.   la cual va a ser visto nuestro estereograma.                                
  141.   
  142.      Si utilizais un PCX como patron de este se cogeran los primeros pixels   
  143.   de cada linea, y debereis procurar que el patron varie mucho que los pixels 
  144.   contiguos varien de unos a otros que no se repitan mucho, la paleta del PCX 
  145.   de salida sera la del PCX patron. Si no utilizamos un PCX patron se untili- 
  146.   zaran puntos aleatorios y la paleta sera la del PCX de entrada para pasar a 
  147.   3D.  
  148.   
  149.     En el PCX de entrada para construir el estereograma deberiais dejar a co- 
  150.   lor cero  los primeros y los ultimos de cada linea al menos tantos como la  
  151.   anchura inicial del patron a usar, ademas los pixels de cierta altura no de-
  152.   berian estar sueltos esdecir que un pixel de altura 15 puede que no se vea  
  153.   al final en cambio si son 15 pixels de altura 15 estos si se veran. La ima- 
  154.   gen final en 3D se corresponde con la  inicial aunque pierde algo en anchu- 
  155.   ra y un pixel que pierde anchura ya no se vera, a mayor altura mejor que    
  156.   sean mas pixels contiguos.                                                  
  157.   
  158.   *  
  159.   ** 
  160.   *** 
  161.   **** 
  162.   ***** 
  163.   TODO3D 
  164.   ******* 
  165.   *************************************************************************** 
  166.   (1994) DEMETRIO FERNANDEZ ALVAREZ
  167.   *************************************************************************** 
  168.   
  169.      Este fichero de texto y el programa TODO3D me pertenece y se puede copiar
  170.   y distribuir sin modificacion alguna, sino es con fines lucrativos . Si se  
  171.   quiere distribuir con fines lucrativos debera escribirme antes para llegar a
  172.   un acuerdo de distribucion.  
  173.   
  174.      Si vais a usar el programa debereis enviarme una carta un disquete de    
  175.   3.5 y vuestro mejos estereograma hasta el momento, claro.  
  176.   
  177.      Si tienes algun problema con el programa escribeme, y cuentame que te ha 
  178.   pasado. Si tienes algun problema de programacion y te apetece compartirlo   
  179.   escribeme seguro que entre los dos encontraremos alguna solucion. Quieres   
  180.   conocer algun aspecto que se te resiste escribeme. Estoy a vuestra disposi- 
  181.   cion.Si quereis el listado del programa enviadme un billete de 20 dolares   
  182.   o uno de 2000 pelas y os mandare 2 discos de alta llenos de listados de pro 
  183.   gramacion Grafica,SoundBLaster( Formatos graficos,scrolls,giros,zoom, etc..).
  184.   Tambien os lo puedo enviar contra reembolso
  185.   
  186.    DEMETRIO FERNANDEZ ALVAREZ 
  187.     C/SAN JOSE Nº 14 1º       
  188.      24420 FABERO (LEON)      
  189.  
  190.   NOTA: La ortografia no es lo mio ni mucho menos las tildes.                 
  191.  
  192.   
  193.   *  
  194.   ** 
  195.   *** 
  196.   **** 
  197.   ***** 
  198.   TODO3D 
  199.   ******* 
  200.   *************************************************************************** 
  201.   (1994) DEMETRIO FERNANDEZ ALVAREZ                                           
  202.   *************************************************************************** 
  203.   Aqui teneis la rutina en C de mi programa. No espereis que os lo esplique a 
  204.  investigar. No olvideis mencionar que la rutina es la mia, si la usais
  205.  unsigned rep=40; 
  206.  unsigned aleatorio[200]; 
  207.  unsigned aleatorio2[200]; \patron 
  208.  unsigned maximo=40; 
  209.  unsigned NPUNTOS=1; 
  210.  unsigned paralelo=1;
  211.  
  212.  void genera(unsigned ini,unsigned fin)  
  213.  {int i,j,d;         
  214.  d=fin-ini;          
  215.  j=random(rep-d);    
  216.  for(i=ini;i<fin;i++)
  217.  {aleatorio[i]=aleatorio2[j+i-ini];} 
  218.  }                   
  219.  
  220.  void genera2(unsigned *tabl,unsigned ini,unsigned fin)                     
  221.  {int i; 
  222.  for(i=ini;i<fin;i++)  
  223.  {tabl[i]=random(getmaxcolor());}   
  224.  }                            
  225.    
  226.  void adelante(unsigned ini,unsigned salto)                                 
  227.  {unsigned i;                                                               
  228.   for (i=maximo;i>ini;i--) aleatorio[i+NPUNTOS*salto]=aleatorio[i];         
  229.   maximo+=NPUNTOS*salto;                                                    
  230.   genera(i,i+NPUNTOS*salto);                                                
  231.  }                                                                          
  232.  
  233.  void atras(unsigned ini,unsigned salto)                                    
  234.  {unsigned i;                                                               
  235.   for (i=ini;i<maximo;i++) aleatorio[i]=aleatorio[i+NPUNTOS*salto];         
  236.   maximo-=NPUNTOS*salto;                                                    
  237.  }                                                                           
  238.  
  239.  void rastrealinea(unsigned numlin)                                         
  240.  {unsigned i,j,k;                                                           
  241.  unsigned color;                                                           
  242.  color=0;                                                                  
  243.  maximo=rep;                                                               
  244.  genera2(aleatorio,numlin,0,maximo*2);                                     
  245.  genera2(aleatorio2,numlin,0,maximo*2);                                    
  246.  j=0;                                                                      
  247.  for(i=0;i<640;i++)                                                        
  248.  {if (paralelo) k=15-getpixel(i,numlin);                                   
  249.       else k=getpixel(i,numlin);                                           
  250.   if (k!=color)                                                            
  251.    {if (k<color) adelante(j,color-k);                   
  252.         else atras(j,k-color);                                            
  253.     color=k;}                                                              
  254.   putpixel(i,numlin,aleatorio[j]);                                         
  255.   j=(j+1)%maximo;}                                                         
  256.  }                                                                          
  257.  
  258.  void pantalla(void)                                                        
  259.  {                                                                          
  260.  unsigned i;                                                               
  261.  for (i=0;i<=480;i++)                                                      
  262.  {if (i%2) rastrealinea(i);                                                
  263.      else  rastrealinea(480-i);}                                           
  264.  }                                                                          
  265.